Grand débat - Paris Saint Jacques - perso

Introduction

##initialisation des packages

#option pour le tricotage
knitr::opts_chunk$set(echo = FALSE, include=TRUE,message=FALSE,warning=FALSE,cache=TRUE)
#chargement des packages
library(car)
## Loading required package: carData
library(RcmdrMisc)
## Loading required package: sandwich
library(Rcmdr)              # la bouée de sauvetage
## Loading required package: splines
## Loading required package: effects
## lattice theme set by effectsTheme()
## See ?effectsTheme for details.
## L'interface graphique de R Commander n'est utilisable que dans des sessions interactives
## 
## Attaching package: 'Rcmdr'
## The following object is masked from 'package:car':
## 
##     Confint
library(reshape2)           # un accesoire visuel pour l'analyse des correlations
library(tidyverse)          # la mode pour r c'est le tidy et il y a ggplot2 pour la viz
## -- Attaching packages ----------------------------------------------------------------------------------------------------- tidyverse 1.2.1 --
## v ggplot2 3.1.0       v purrr   0.3.2  
## v tibble  2.1.1       v dplyr   0.8.0.1
## v tidyr   0.8.3       v stringr 1.4.0  
## v readr   1.3.1       v forcats 0.4.0
## -- Conflicts -------------------------------------------------------------------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
## x dplyr::recode() masks car::recode()
## x purrr::some()   masks car::some()
library(viridis)            #palette de couleur
## Loading required package: viridisLite
library(gridExtra)          # c'est pour mettre plusieurs graphiques en un seul
## 
## Attaching package: 'gridExtra'
## The following object is masked from 'package:dplyr':
## 
##     combine
library(dendextend)         # pour de plus beaux arbres
## 
## ---------------------
## Welcome to dendextend version 1.10.0
## Type citation('dendextend') for how to cite the package.
## 
## Type browseVignettes(package = 'dendextend') for the package vignette.
## The github page is: https://github.com/talgalili/dendextend/
## 
## Suggestions and bug-reports can be submitted at: https://github.com/talgalili/dendextend/issues
## Or contact: <tal.galili@gmail.com>
## 
##  To suppress this message use:  suppressPackageStartupMessages(library(dendextend))
## ---------------------
## 
## Attaching package: 'dendextend'
## The following object is masked from 'package:stats':
## 
##     cutree
library(Rcpp)               # j'ai du avoir besoin de ça
library(topicmodels)        # pour trouver des sujets de conversations
library(Rtsne)              # c'est du mds à la sauce relativité - un modèle de champs?
library(ldatuning)          # des sujets oui mais combiens?
library(tidytext)           # dans le tidy il y a le rameau du texte
library(quanteda)           # le plus top des accessoires et les modèles les plus originaux
## Package version: 1.4.1
## Parallel computing: 2 of 4 threads used.
## See https://quanteda.io for tutorials and examples.
## 
## Attaching package: 'quanteda'
## The following object is masked from 'package:utils':
## 
##     View
#library(textcat)            # identification des langues non utilisé mais on pourrait ( basque breton ?)
library(cleanNLP)           #pour le Pos
library(syuzhet)             #analyse du sentimeent
library(DescTools)
## 
## Attaching package: 'DescTools'
## The following object is masked from 'package:car':
## 
##     Recode
#library(quanteda.dictionaries) #attention aux langues!
library(knitr)
library(kableExtra)
## 
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
## 
##     group_rows
#carto
library(sf)
## Linking to GEOS 3.6.1, GDAL 2.2.3, PROJ 4.9.3
library(readr) #pour lire le fichier csv

Extraction et recodage des données

Analyse du sentiment et des émotions

on utilise le package syuzhet et en particulier le “nrc” developed by Mohammad, Saif M. and Turney, Peter D.pour la raison pratique que lui seul propose un dictionnaire français.

On filtre le corpus sur un critère de 50 caractère minimum ou une dizaine de mots. Pour l’instant on élimine pas les textes très long qui contribuent plus que proportionnellement au corpus.

une option est de travailler sur l’ensemble du texte en concaténant les variables textes. C’est option qui est choisie.

La distribution du sentiment

Le sentiment est plutôt positif, même si une fraction importante présente des valeurs négatives.

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## -38.000  -1.000   1.000   1.368   3.000  61.000

La carte du sentiment

Il est difficile d’observer un pattern clair, les différences sont plus importantes sur un plan individuel.

## Reading layer `DEPARTEMENT' from data source `C:\Users\UserPC\Documents\AtelierR\GiletJaune\Map\DEPARTEMENT.shp' using driver `ESRI Shapefile'
## Simple feature collection with 96 features and 4 fields
## geometry type:  MULTIPOLYGON
## dimension:      XY
## bbox:           xmin: 99038 ymin: 6046556 xmax: 1242436 ymax: 7110480
## epsg (SRID):    NA
## proj4string:    +proj=lcc +lat_1=44 +lat_2=49 +lat_0=46.5 +lon_0=3 +x_0=700000 +y_0=6600000 +ellps=GRS80 +units=m +no_defs

quelques déterminants départmentaux

On peut expliquer les variations du sentiment par des variables mesurées au niveau du départment. On teste ici des indicateurs simples : * richesse en terme de niveau de vie * densité de population * densité de richesse

Seule le niveau de vie est lié, mais on sera prudent avec ce niveau d’agrégation sans doute insuffisant. On peut parfaitement compléter par d’autres variables ce qu’on fait monnery et al sur la participation.

## 
## Call:
## lm(formula = sentiment ~ NiveauVie_2015 + density_w + density_h, 
##     data = dep_d)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.69270 -0.12009  0.00494  0.15324  0.69430 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)  
## (Intercept)     2.596e-01  3.983e-01   0.652   0.5162  
## NiveauVie_2015  4.968e-02  1.968e-02   2.524   0.0134 *
## density_w      -1.333e-05  1.059e-05  -1.259   0.2113  
## density_h       3.640e-04  2.699e-04   1.349   0.1808  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2446 on 90 degrees of freedom
## Multiple R-squared:  0.1201, Adjusted R-squared:  0.09081 
## F-statistic: 4.096 on 3 and 90 DF,  p-value: 0.00896

L’accès aux SP, le souhait d’autonomie et la décentralisation

Une analyse de variance montre qu’ l’accès difficile ou aisé aux services publiques n’explique pas le sentiment. En revanche prendre parti pour la décentralisation et plus encore pour l’autonomie des fonctionnaires est associé à des contributions dont le contenu est plutôt positif.

Ceci peuit s’expliquer par le fait de porter ces conceptions conduit à proposer des solutions alternatives et positives, la critique porte sur l’inéfficience du systèùe et se déporte sur la propositions d’alternative. La conception antagoniste est sans doute plus chargée de récriminations, elles se constitue dans une dénonciation de l’inéfficacité, et recommande de manière punitive des actions de réduction, de suppression, de contrôle accru. C’est une hypothèse qu’il va falloir éprouver.

## 
## Call:
## lm(formula = sentiment ~ QTransfertMission + QAcces_SP + Qautonomie, 
##     data = df2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -38.888  -2.071  -0.305   1.899  44.899 
## 
## Coefficients:
##                                       Estimate Std. Error t value Pr(>|t|)
## (Intercept)                            2.10098    0.03615  58.120   <2e-16
## QTransfertMissionNe pas décentraliser -0.76621    0.03541 -21.636   <2e-16
## QAcces_SPAccès facile                 -0.02992    0.03734  -0.801    0.423
## QautonomiePas d'autonomie             -0.41677    0.03964 -10.514   <2e-16
##                                          
## (Intercept)                           ***
## QTransfertMissionNe pas décentraliser ***
## QAcces_SPAccès facile                    
## QautonomiePas d'autonomie             ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.995 on 53681 degrees of freedom
##   (31027 observations deleted due to missingness)
## Multiple R-squared:  0.01322,    Adjusted R-squared:  0.01316 
## F-statistic: 239.6 on 3 and 53681 DF,  p-value: < 2.2e-16
## Analysis of Variance Table
## 
## Response: sentiment
##                      Df Sum Sq Mean Sq  F value Pr(>F)    
## QTransfertMission     1   9684  9683.9 606.6965 <2e-16 ***
## QAcces_SP             1     27    26.7   1.6706 0.1962    
## Qautonomie            1   1764  1764.4 110.5391 <2e-16 ***
## Residuals         53681 856840    16.0                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Analyse des émotions - nrc

on utilise simplement la fonction get_nrc_sentiment, en précisant le dictionnaire français. L’échelle comprend en fait deux éléments : les 8 émotion de base au sens de pluchik, et deux indicateurs de polarité.

les polarités

Les textes étant inégaux en taille on va ramener l’indicateur de polarité au nombre de caractères (une base de 100) de chaque contribution. En effet l’algo compte les valence et leur intensité est proportionnel à la longueur du texte. Ce qui est clairement démontré par la seconde figue.

A partir de ces deux mesures, 4 indicateurs peuvent êtres construits

  • Positivité : nombre de termes positifs pour 100 signes.
  • Négativitivé : nombre de termes positifs pour 100 signes.
  • Valence : rapport du nombre de termes positifs pour 100 signes sur les négatifs
  • Expressivité : nombre de termes positifs et négatifs pour 100 signes.

le dernier graphe pour apprend que les jugements plutôt positifs sont aussi les moins expressifs. On trouve ici un argument en faveur de l’analyse précédente.

encore un peu de chloroplète…pour comparer emotionnalité et valence du discours. Il semblerait bien que l’emotionnalité soit associé à la négativité, les cartes se recoupent.

On testant la correlation au niveau du département, on s’aperçoit d’une corrélation très nette. Elle est moins évidente avec la positivité. Le caractère revendicatif est dépendant des arguments proposés : des solutions ou des dénonciations.

les émotions

On se concentre sur les 8 facettes de l’émotions.

On peut raisonner en part relative des émotions dans le mesure où l’outil NCR compte les éléments probables de chacune des émotions. C’est pourquoi on recode les variables Encore une fois les textes long risquent de peser plus que les textes couts.

On peut ainsi dessiner une carte de la crainte ( fear)… il restera à en établir la validité et la fiabilité…

## 
## Call:
## factanal(x = ~anger + anticipation + disgust + fear + joy + sadness +     surprise + trust, factors = 3, data = emo, scores = "none",     rotation = "promax")
## 
## Uniquenesses:
##        anger anticipation      disgust         fear          joy 
##        1.000        1.000        1.000        1.000        1.000 
##      sadness     surprise        trust 
##        1.000        1.000        0.036 
## 
## Loadings:
##              Factor1 Factor2 Factor3
## anger         0.542           0.158 
## anticipation  0.187   0.533   0.288 
## disgust       0.401                 
## fear          0.478  -0.118   0.175 
## joy           0.112   0.557         
## sadness       0.396           0.434 
## surprise      0.224   0.564         
## trust        -1.241  -0.672  -0.770 
## 
##                Factor1 Factor2 Factor3
## SS loadings      2.477   1.394   0.925
## Proportion Var   0.310   0.174   0.116
## Cumulative Var   0.310   0.484   0.600
## 
## Factor Correlations:
##         Factor1 Factor2 Factor3
## Factor1   1.000 -0.6113 -0.3470
## Factor2  -0.611  1.0000  0.0611
## Factor3  -0.347  0.0611  1.0000
## 
## Test of the hypothesis that 3 factors are sufficient.
## The chi square statistic is 2326359 on 7 degrees of freedom.
## The p-value is 0

## les émotions et la politique du territoire

Le premier élément est que le sentiment est plus positif, ici sur le critère de confiance, quand l’accès aux services public est aisés que lorqu’il est difficile. Les différences en terme d’autonomie sont très faibles, en revanche une différenc eplus nette est observée entre ceux qui sont pour la décentralisation et ceux qui le sont moins. Les différences sont cependant très faibles.

Il reste a explorer systématiquement des autres émotions. Nous aurons au moins montré que l’on peut capter des différences émotionnelles à l’échelle du territoire. Un terrain de recherche est ouvert pour mieux en établir, la validité, la fiabilité et la sensibilité pour l’employer dans des analyses plus fines. Notamment la manière dont les populations distribuées dans dans situations sociales et spatiales différentes expriment leurs sentiments.

## 
## Call:
## lm(formula = trust ~ QTransfertMission + QAcces_SP + Qautonomie, 
##     data = df2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.31166 -0.12984 -0.03635  0.08228  0.74256 
## 
## Coefficients:
##                                        Estimate Std. Error t value
## (Intercept)                            0.287740   0.002024 142.130
## QTransfertMissionNe pas décentraliser -0.025311   0.002001 -12.652
## QAcces_SPAccès facile                  0.023921   0.002097  11.407
## QautonomiePas d'autonomie             -0.004987   0.002250  -2.216
##                                       Pr(>|t|)    
## (Intercept)                             <2e-16 ***
## QTransfertMissionNe pas décentraliser   <2e-16 ***
## QAcces_SPAccès facile                   <2e-16 ***
## QautonomiePas d'autonomie               0.0267 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2183 on 50142 degrees of freedom
##   (34566 observations deleted due to missingness)
## Multiple R-squared:  0.006404,   Adjusted R-squared:  0.006344 
## F-statistic: 107.7 on 3 and 50142 DF,  p-value: < 2.2e-16
## Analysis of Variance Table
## 
## Response: trust
##                      Df  Sum Sq Mean Sq  F value  Pr(>F)    
## QTransfertMission     1    9.06  9.0632 190.1624 < 2e-16 ***
## QAcces_SP             1    6.11  6.1051 128.0973 < 2e-16 ***
## Qautonomie            1    0.23  0.2341   4.9114 0.02668 *  
## Residuals         50142 2389.77  0.0477                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Conclusion

Un processus plein de piège, un problème de qualité de la méthode. Il faudra sans doute des benchmark, au minimum l’établissement d’un standard.

Mais ce n’est pas un problème pour l’analyse comparative si les biais sont systématiques et proportionnels.

la territorialité pose probleme, le département n’est pas une bonne unité, il moyenne les disparités d’espace, de surface.

Mais des variations qui semblent répondre à un schéma compréhensible : deux types de contributions , les unes constructives et apaisées, les autres plus revendicative et expressive. Pourquoi dans certains entdroits les une predominent sur les autres est un thème de recherche à approfondir.

Références